home *** CD-ROM | disk | FTP | other *** search
- /*
- * Canvas-based rendering of views
- *
- * Author:
- * Miguel de Icaza (miguel@kernel.org)
- *
- * Copyright (C) 1999, 2000 Ximian, Inc.
- */
-
- #ifndef BONOBO_CANVAS_IDL
- #define BONOBO_CANVAS_IDL
-
- #include "Bonobo_Unknown.idl"
- #include "Bonobo_Gdk.idl"
- #include "Bonobo_UI.idl"
-
- module Bonobo {
-
- module Canvas {
- typedef sequence<octet> pixbuf;
-
- /* At least 32 bits */
- typedef long int32;
-
- struct IRect {
- long x0, y0, x1, y1;
- };
-
- struct DRect {
- double x0, y0, x1, y1;
- };
-
- const short IS_BG = 1;
- const short IS_BUF = 2;
-
- typedef double affine [6];
-
- /*
- * See gnome-canvas.h:GnomeCanvasBuf for an explanation
- */
- struct Buf {
- pixbuf rgb_buf;
- long row_stride;
- IRect rect;
- int32 bg_color;
- short flags;
- };
-
- struct Point {
- double x, y;
- };
-
- typedef sequence<Point> Points;
-
- struct SVPSegment {
- boolean up; /* up or down */
- DRect bbox;
- Canvas::Points points;
- };
-
- typedef sequence<SVPSegment> SVP;
-
- struct ArtUTA {
- short x0, y0;
- short width, height;
- sequence<int32> utiles;
- };
-
- struct State {
- affine item_aff;
- double pixels_per_unit;
- double canvas_scroll_x1;
- double canvas_scroll_y1;
- long zoom_xofs, zoom_yofs;
- long xoffset, yoffset;
- };
-
- interface Component : Bonobo::Unknown {
-
- /**
- * update:
- *
- * Returns the update region.
- */
- ArtUTA update (in Canvas::State state,
- in affine aff, in SVP clip_path, in long flags,
- out double x1, out double y1, out double x2, out double y2);
-
- void realize (in Gdk::WindowId drawable);
- void unrealize ();
- void map ();
- void unmap ();
-
- void draw (in Canvas::State state,
- in Gdk::WindowId drawable,
- in short x, in short y,
- in short width, in short height);
-
- /**
- * render:
- * @buf: The render control buffer.
- *
- * This version of render has buf->flags & IS_BUF == FALSE,
- * so we avoid sending the buffer out, we just return it.
- *
- */
- void render (inout Canvas::Buf buf);
-
- /**
- * contains:
- * @x: x coordinate
- * @y: y coordinate
- *
- * Returns true if the point at @x, @y is contained inside
- * the item
- */
- boolean contains (in double x, in double y);
-
- void bounds (in Canvas::State state,
- out double x1, out double x2,
- out double y1, out double y2);
-
- boolean event (in Canvas::State state,
- in Bonobo::Gdk::Event event);
-
- /**
- * setCanvasSize:
- *
- * Notifies this item about the size of the Canvas size on the
- * canvas
- */
- void setCanvasSize (in short x, in short y, in short width, in short height);
-
- /**
- * setBounds:
- * @bbox: the requested bounding box.
- *
- * Sets the bounding box of the item to (x1,y1)-(x2,y2)
- */
- void setBounds (in DRect bbox);
-
- void unImplemented1 ();
- void unImplemented2 ();
- void unImplemented3 ();
- void unImplemented4 ();
- void unImplemented5 ();
- void unImplemented6 ();
- void unImplemented7 ();
- void unImplemented8 ();
- };
-
- /*
- * This interface is used on the container side to forward
- * events to the real containing canvas and the item
- */
-
- interface ComponentProxy {
- /**
- * requestUpdate:
- *
- * Requests an update of the client side canvas.
- */
- void requestUpdate ();
-
- /**
- * grabFocus:
- * @mask: Gdk Event mask to grab.
- * @cursor: GdkCursorType to display during grab.
- * @time: time of last event before grab.
- *
- * Grabs the mouse focus.
- */
- void grabFocus (in unsigned long mask,
- in long cursor,
- in unsigned long time);
-
- /**
- * ungrabFocus:
- * @time: time of last event before ungrab.
- *
- * Ungrabs the mouse focus.
- */
- void ungrabFocus (in unsigned long time);
-
- /**
- * getUIContainer:
- *
- * Returns: an associated UI component or NIL.
- */
- UIContainer getUIContainer ();
-
- void unImplemented1 ();
- void unImplemented2 ();
- void unImplemented3 ();
- void unImplemented4 ();
- void unImplemented5 ();
- void unImplemented6 ();
- void unImplemented7 ();
- void unImplemented8 ();
- };
- };
-
- };
-
- #endif /* BONOBO_CANVAS_IDL */
-